#if 0
#include <iostream>
#include <list>
using namespace std;
int main()
{
	list<int> n_list;
	list<int> n_list1;
	typedef list<int>::iterator iterator;
	iterator list_iter_end = n_list.end();
	n_list.insert(list_iter_end, 10);
	n_list.insert(list_iter_end, 11);
	iterator it = n_list1.end();
	n_list1.splice( n_list1.end(), n_list, n_list.begin());
	n_list1.splice( --it, n_list, n_list.begin());
	cout << *it <<endl;

	for( iterator it = n_list.begin(); it != n_list.end(); it ++ )
		cout << *it <<endl;
	for( iterator it = n_list1.begin(); it != n_list1.end(); it ++ )
		cout << *it <<endl;
}

#endif

#include "common/common.h"
#include "../Reactor.h"
#include "../Acceptor.h"
#include "../SockOps.h"
#include "../NetIO.h"
#include <iostream>
#include <list>
using namespace std;
static int post_accept_ = 0;
class Task
{
public:
	Task(void);
public:
	~Task(void);
	//virtual int get_result();
};


Task::Task(void)
{
}

Task::~Task(void)
{
}

// int Task::get_result()
// {
// 	while(1)
// 	{
// 		Operation_Result result;
// 		NetIO::async_operation_result( result );
// 		if( result.optype_ == Operation::OPTYPE_READ )
// 		{
// 			if( result.errcode_ )
// 			{
// 
// 				NetIO::async_cancel( result.handle_ );
// 				SockOps::close_socket(result.handle_);
// 				continue;
// 			}
// 			NetIO::async_write( result.handle_, result.buf_, 2048 );
// 		}
// 		else if( result.optype_ == Operation::OPTYPE_WRITE )
// 		{
// 			if( result.errcode_ )
// 			{
// 				NetIO::async_cancel( result.handle_ );
// 				SockOps::close_socket( result.handle_ );
// 				continue;
// 			}
// 			
// 			NetIO::async_read( result.handle_, result.buf_, 2048 );
// 		}
// 		else if( result.optype_ == Operation::OPTYPE_ACCEPT )
// 		{
// 			post_accept_ --;
// 			if( result.errcode_ )
// 			{
// 				NetIO::async_cancel( result.handle_ );
// 				SockOps::close_socket( result.handle_ );
// 				continue;
// 			}
// 			if( post_accept_ <= 0 )
// 			{
// 				Acceptor *acceptor = (Acceptor *)result.act_;
// 				for ( int tmpi = 0; tmpi < 100; tmpi ++)
// 				{
// 					acceptor->async_accept( acceptor );
// 				}
// 			}
// 			char *buf = new char [2048];
// 			NetIO::async_read( result.handle_, buf, 2048 );
// 		}
// 		if( result.optype_ == Operation::OPTYPE_CONNECT )
// 		{
// 			if( result.errcode_ )
// 			{
// 				NetIO::async_cancel( result.handle_ );
// 				SockOps::close_socket( result.handle_ );
// 				continue;
// 			}
// 			char *buf = new char [4086];
// 			memset( buf, 0, 4086 );
// 			NetIO::async_write( result.handle_, buf, strlen(buf) );
// 		}
// 	}
// 	printf("leave\n");
// 	return	0;
// }
// 
// 
// void sig_exit( int signo )
// {
// 
// }
// #include "thread/Thread_Group.h"
// 
// int main()
// {
// 	printf ("main %d\n",(int)Singleton<Reactor>::instance() );
// 
// 	Task t;
// 	Singleton<Acceptor>::instance();
// 	Thread_Group threads;
// 	Task task;
// 	threads.run_thread( Singleton<Reactor>::instance(), &Reactor::run, 1 );
// 	threads.run_thread( &task, &Task::get_result, 1 );
// 
// 	Acceptor acceptor;
// 	acceptor.init("",8899);
// #ifndef WIN32 
// 	signal( SIGPIPE, sig_exit );
// #endif
// 	acceptor.async_accept( &acceptor );
// 	int i;
// 	cin >>i ;
// 	threads.join_all();
// 	if( i == 1 )
// 		Singleton<Reactor>::instance()->close();
// #ifdef WIN32
// 	Sleep( 10000000 );
// #else
// 	sleep(1000000);
// #endif
// 	
// 	printf("leave\n");
// 	return 0;
// }
// #if 0
// 
// #define _WIN32_WINNT 0x100
// #include <boost/asio.hpp>
// using namespace std;
// using namespace boost;
// using namespace boost::asio;
// int main()
// {
// 	io_service io;
// }
// #endif
int main()
{

}
